# -*- coding: utf-8 -*-
'''
Created on Oct 30, 2010

@author: HoangNamHai
'''
import datetime, time
import commonlib
import traceback, os
from MongoModel import MongoModel
from MongoDbLog import MongoDbLog

LOG = MongoDbLog('TyGia', 'debug')
MONGO_SERVER = '27.0.12.106'
MONGO_PORT = 27017

class TyGia(MongoModel):
    provinces = {'Bắc Giang':'80','Bắc Ninh':'81','Bắc cạn':'86','Cao Bằng':'83','Hải Phòng':'88','Hưng Yên':'63','Hải Dương':'48',
        'Hà Tây':'65','Hà Giang':'68','Lạng Sơn':'82','Nam Định':'64','Ninh Bình':'46','Phủ Lý':'49','Quảng Ninh':'120','Tuyên Quang':'84',
        'Thái Nguyên':'85','T.P Hà Nội':'58','Thái Bình':'47','Việt Trì':'76','Vĩnh Phúc':'77','Hòa Bình':'4','Lào Cai':'69','Điện Biên':'70',
        'Sơn La':'78','Yên Bái':'87','Lai Châu':'127','Hà Tĩnh':'28','Quảng Bình':'29','Quảng Trị':'30','Thừa Thiên Huế':'31','Thanh Hóa':'106',
        'Vinh':'111','Quảng Ngãi':'34','Nha Trang':'37','Bình Thuận':'39','Đà nẵng':'92','Bình Định':'94','Phú Yên':'99','Ninh Thuận':'100',
        'Quảng Nam':'119','Kon Tum':'40','Pleiku':'41','Đắk Lắk':'42','Đà Lạt':'43','Đắk Nông':'71','T.P Hồ Chí Minh':'44','Bình Dương':'45',
        'Long An':'50','Đồng Tháp':'51','Tiền Giang':'52','Bến Tre':'53','Hậu Giang':'54','Cần Thơ':'56','Sóc Trăng':'57','Bạc Liêu':'59',
        'Bình Phước':'60','Vũng Tàu':'61','Đồng Nai':'62','Tây Ninh':'66','Kiên Giang':'73','Cà Mau':'74','Vĩnh Long':'95','An Giang':'96',}
    
    def __init__(self, host='localhost', port=27017):
        MongoModel.__init__(self, host, port)
        
    def process(self):
        LOG.debug('start process vietcombank tygia')
        url = 'http://www.vietcombank.com.vn/ExchangeRates/ExrateXML.aspx'
        result = {}
        try:
            tree = commonlib.getXMLTree(url)
            if tree == '': return
            result['datetime'] = tree.xpath('//datetime')[0].text
            result['_id'] = hash(result['datetime'])
            result['lastupdate'] = datetime.datetime.now()
            result['timestamp'] = time.time()
            data = []
            for row in tree.xpath('//exrate'):
                dataRow = {}
                dataRow['code'] = row.get('currencycode')
                dataRow['name'] = row.get('currencyname')
                dataRow['buy'] = row.get('buy')
                dataRow['transfer'] = row.get('transfer')
                dataRow['sell'] = row.get('sell')
                data.append(dataRow)
                
            result['data'] = data
            db = self.connection['tygia']
            collection = db['vietcombank']
            collection.save(result)
        except:
            LOG.error(traceback.format_exc())
        print result
        return

if __name__ == '__main__':
    LOG.info('start crawler tygia vietcombank')
    tygia = TyGia(MONGO_SERVER, MONGO_PORT)
    tygia.process()
    LOG.info('finished crawler tygia vietcombank')
    pid = os.getpid()
    os._exit(1)
    os.kill(pid, 9)
        
        